/* ************************************************************************
 *       Filename:  tools.c
 *    Description:  
 *        Version:  1.0
 *        Created:  2018年09月29日 11时22分41秒
 *       Revision:  none
 *       Compiler:  gcc
 *         Author:  YOUR NAME (), 
 *        Company:  
 * ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <time.h>

#include "tools.h"

// 打印调试信息
void LOGD(const char* format, ...)
{
	printf("Debug => ");
	va_list vp;
	va_start(vp, format);
	vprintf (format, vp);
	va_end  (vp);
	printf  ("\n");
}

// 打印错误信息
void LOGE(const char* format, ...)
{
	printf("Error => ");
	va_list vp;
	va_start(vp, format);
	vprintf (format, vp);
	va_end  (vp);
	printf  ("\n");
}

// 打印参数信息
void LOGI(const char* format, ...)
{
	printf("Info  => ");
	va_list vp;
	va_start(vp, format);
	vprintf (format, vp);
	va_end  (vp);
	printf  ("\n");
}

// 输入提示
void INPUT(const char* format, ...)
{
	printf("Input  => ");
	va_list vp;
	va_start(vp, format);
	vprintf (format, vp);
	va_end  (vp);
	printf  ("\n");
}

// 延时 毫秒
void DELAY_U(long times)
{
	LOGD("Delay %ld ms...", times);
	usleep(times);
}

// 延时 秒
void DELAY_S(long times)
{
	LOGD("Delay %ld s...", times);
	sleep(times);
}

// 生成随机序列种子
void creat_srand()
{
	srand(time(NULL));
}

// 生成随机数
int creat_rand(int count, int num)
{
	return rand() % count + num; 
}

// 生成随机字符串
char *creat_str()
{
	static char str[CREAT_STR_LEN + 1] = {0};
	int i     = 0;
	int flag  = 0;
	//srand(time(NULL));
	for(i = 0; i < CREAT_STR_LEN; i++)
	{
		flag = rand() % 3;
		switch (flag)
		{
			case 0:
			{
				str[i] = rand() % 26 + 'a';
			}
			break;

			case 1:
			{
				str[i] = rand() % 26 + 'A';
			}
			break;

			case 2:
			{
				str[i] = rand() % 26 + '0';
			}
			break;

		}
	}

	return str;
}
